1. The Field of the Invention
The present invention relates to systems and methods for synchronizing a device. More particularly, the present invention relates to systems and methods for synchronizing objects stored on a device such that corresponding objects that are retrieved from a synchronization partner during synchronization and updated on the device are not synchronized back to the synchronization partner in future synchronizations.
2. Background and Relevant Art
Wireless and portable devices, such as cellular telephones, personal digital assistants (PDAs), pagers, and hand held computers, are being used by consumers at an increasing rate. Consumers use these devices to store and access information such as email, contact data, calendar data, and other documents. Much of this information is from synchronization partners such as home computers, office computers or the Internet and is received over various communication channels such as docking stations and wireless channels. The utility provided by wireless devices has made them an integral part of the daily activities of many consumers.
Typically, the ability of these devices to store information is significantly less than the ability of the device's synchronization partners and much of the information that is stored on a wireless or portable device is actually a copy of information that already exists on the stores of the synchronization partners. Because the storage capacity of the synchronization partners is usually larger than the storage capacity of the device, the device can only store a portion of the information that can be stored on the partners.
As a result, portable and wireless devices are often synchronized with various synchronization partners. Synchronizing a device with one or more synchronization partners is a significant issue because the information stored by wireless devices must be updated in order for the information to retain its value. Various methods have been employed to synchronize a wireless device. The crudest method is for the wireless device and the synchronization partner to determine what data they have, compare their data and perform those actions that are necessary to make both the synchronization partner and the wireless device have the same data. This type of synchronization is not efficient because of the high processing cost involved. In addition, the air time usage may be substantial, which may increase the monetary cost of using the wireless device.
Another method that has been employed to synchronize data is to create a property value for each and every object in the store. This property value will be incremented each time that an object changes in the store. The problem with this approach is that the memory required to store the property value of each object will have to be relatively large in order to accommodate all of the potential changes that the store may experience without exceeding the storage capacity of the change or property value. Another issue with this approach is that because the relatively large property value is stored with each object, the amount of memory consumed by these property values in the aggregate can be significant.
Even though many synchronization methods exist, data is often synchronized unnecessarily. This problem is evident when an update to an object in the store of the device occurs during synchronization and is particularly troublesome when the update or write to the object in the store of the device originates with the synchronization partner that is currently synchronizing with the device. Typically, the origin of this update is not remembered and during the next synchronization, the update will by synchronized back to the synchronization partner. This can needlessly consume air time, bandwidth, processing power, or device memory and can even generate needless conflicts or loss of data.